package br.ufpe.cin.imlm2.jbeat.soot.report;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import br.ufpe.cin.imlm2.jbeat.soot.common.NoSuchOptionException;
import br.ufpe.cin.imlm2.util.Options;

public class ReportOptions extends Options {

	public static final String SINGLE_FILE = "single_file";
	protected boolean __single_file = false;

	public static final String FULL_REPORT = "full_report";
	protected boolean __full_report = false;

	public static final String STD_LIBRARIES = "std_libraries";
	protected boolean __std_libraries = false;

	public static final String REPORT_PATH = "report_path";
	protected String __report_path = System.getProperty("user.dir");

	public static final String REPORT_CLASSES = "report_classes";
	protected List<String> __sreport_classes = new ArrayList<String>();

	public static final String REPORT_PACKAGES = "report_packages";
	protected List<String> __sreport_packages = new ArrayList<String>();

	public ReportOptions(Map<String, String> options) {
		super();
		try {
			this.parse(options);
		} catch (NoSuchOptionException e) {
			System.err.println("Ignoring unkwon JBeat option: "
					+ e.getInvalidOtion());
		}
	}

	public boolean isSingle_file() {
		return this.__single_file;
	}

	public boolean isFull_report() {
		return this.__full_report;
	}

	public boolean isStd_libraries() {
		return this.__std_libraries;
	}

	public String getReport_path() {
		return this.__report_path;
	}

	public List<String> getReport_classes() {
		return this.__sreport_classes;
	}

	public List<String> getReport_packages() {
		return this.__sreport_packages;
	}

}
